<?php

try {
	$perPage10 = 10;
	$perPage20 = 20;
	$perPage50 = 50;
	$perPage100 = 100;
	
	//Identifiant de l'onglet
	$idOnglet = tabGetIdByCode('TAB_UPDATE_INVITES');
	
	//Identifiant onglet de redirection par défaut si déjà connecté
	$idOngletDefaut = tabGetIdByCode('TAB_LISTE_INVITES');
	$idOngletListeSuppr = tabGetIdByCode('TAB_LISTE_INVITES_SUPPRIMES');
	if (isset($_REQUEST['parent'])) {
		$idOngletDefaut = intval($_REQUEST['parent']);
	}
	$isParentListeSuppr = ($idOngletDefaut == $idOngletListeSuppr);
	
	//On récupère les informations du cookie
	$idMariage = getIdMariage();
	$infosMariage = getInfosMariage($idMariage);
	
	//On récupère l'identifiant de l'invité
	if (!isset($_REQUEST['idInvite'])) {
		//Pas d'identifiant d'invité à modifier, on redirige vers la liste des invités
		header('Location: '.buildUrl(getCurrentBaseUrl().'/index.php'
		  							,array
		  								('onglet'	=> $idOngletDefaut
		  								)
		  							)
			  );
		exit;
	}
	
	$idInvite = intval(trim($_REQUEST['idInvite']));
	
	//Préparation des informations de radio boutons et combo box
	$selCiviliteM = '';
	$selCiviliteMlle = '';
	$selCiviliteMme = '';
	
	$confirmeRadioOui = '';
	$confirmeRadioNon = '';
	
	$codeStatut = '';
	
	//On essaie de récupérer l'invité à modifier en base
	$invite = getInvite($idInvite);
	
	$encodedInvite =  $invite['CIVILITE'].$invite['NOM'].$invite['PRENOM'].
				$invite['EMAIL'].$invite['TELEPHONE_FR'].$invite['PRESENCE_CONFIRMEE'];
	$wasUpdated = false;
	
	if ($_SERVER['REQUEST_METHOD'] === 'POST') {
		if (!isset($_POST['typeAction']) || ($_POST['typeAction'] == 'UPDATE')) {
			//Soumission des modifications de l'invité
			//On vérifie que des données ont changé avant appel en base
			$encodedModif = $_POST['civilite'].trim($_POST['nom']).trim($_POST['prenom']).
						trim($_POST['email']).trim($_POST['telephone']).$_POST['confirme'];
						
			if ($encodedInvite !== $encodedModif) {
				//En cas de différence, on modifie en base
				$confirme = ($_POST['confirme'] == 1);
				
				$wasUpdated = updateInvite
							(intval($invite['ID_MARIAGE'])
							,intval($invite['ID'])
							,$_POST['civilite']
							,trim($_POST['nom'])
							,trim($_POST['prenom'])
							,trim($_POST['email'])
							,trim($_POST['telephone'])
							,$presence=($_POST['confirme'] == 1)
							,gmdate('c')
							);
					
				//On récupère l'invité mis à jour pour mise à jour de l'affichage
				$invite = getInvite($invite['ID']);
			}
		}  else if ($_POST['typeAction'] == 'DELETE') {
			//Suppression de l'invité
			$wasUpdated = supprimerInvite
						(intval($invite['ID_MARIAGE'])
						,intval($invite['ID'])
						,gmdate('c')
						);
						
			//On récupère l'invité mis à jour pour mise à jour de l'affichage
			$invite = getInvite($invite['ID']);
		}else if ($_POST['typeAction'] == 'CANCEL') {
			//Suppression de l'invité
			$wasUpdated = annulerInvite
						(intval($invite['ID_MARIAGE'])
						,intval($invite['ID'])
						,gmdate('c')
						);
						
			//On récupère l'invité mis à jour pour mise à jour de l'affichage
			$invite = getInvite($invite['ID']);
		} else if ($_POST['typeAction'] == 'CONFIRM') {
			//Confirmation de l'invité
			$wasUpdated = confirmerInvite
						(intval($invite['ID_MARIAGE'])
						,intval($invite['ID'])
						,gmdate('c')
						);
						
			//On récupère l'invité mis à jour pour mise à jour de l'affichage
			$invite = getInvite($invite['ID']);
		}
	}
	
	if (count($invite) > 0) {
		//Traitement de la civilité
		if ($invite['CIVILITE'] === CIVILITE_MONSIEUR) {
			$selCiviliteM = 'selected="selected"';
		} else if ($invite['CIVILITE'] === CIVILITE_MADEMOISELLE) {
			$selCiviliteMlle = 'selected="selected"';
		} else if ($invite['CIVILITE'] === CIVILITE_MADAME) {
			$selCiviliteMme = 'selected="selected"';
		}
		
		//Traitement de la confirmation de présence ou non
		if ($invite['PRESENCE_CONFIRMEE'] === '1') {
			$confirmeRadioOui = 'checked="checked"';
		} else {
			$confirmeRadioNon = 'checked="checked"';
		}
		
		//Traitement du code statut
		$statut = getStatutById($invite['ID_STATUT']);
		$codeStatut = utf8_encode($statut['LIBELLE']);
	}
?>


<!-- Code javascript pour la page -->
<script type="text/javascript">
	/**
	 * Fonction appelée pour la suppression ou l'annulation d'un invité
	 */
	function annulerOuSupprimerInvite(typeAction) {
		var msg = "";
		if (typeAction == "CANCEL") {
			msg = "Etes-vous sûr de vouloir annuler l'invité ? Cliquez sur Non pour annuler. Si vous cliquez sur Oui, " +
			"l'invité sera annulé et il ne sera plus possible de lui envoyer un email via l'application";
		} else if (typeAction == "DELETE") {
			msg = "Etes-vous sûr de vouloir supprimer l'invité ? Si vous cliquez sur Oui, l'invité ne sera plus visible "
				+"dans la liste des invités. Il sera cependant accessible via une page dédiée.";
		}

		if (confirm(msg)) {
			document.getElementById('typeAction').value = typeAction;
			return true;
		} else {
			return false;
		}
	}
</script>

<a class="note" href="index.php?onglet=<?php echo $idOngletDefaut; ?>"> &lt;&lt; Retour à la liste des invités<?php if ($isParentListeSuppr) echo ' supprimés'?></a><p><br /></p>
<?php if ($wasUpdated) { ?>
<div class="msgConfirm">Votre modification a été prise en compte</div>
<?php } //Fin if ($wasUpdated) ?>
<form action="index.php?onglet=<?php echo $idOnglet; ?>&idInvite=<?php echo $idInvite; ?>&parent=<?php echo $idOngletDefaut; ?>" method="post">
	<input type="hidden" id="typeAction" name="typeAction" value="UPDATE" />
	<table class="listInviteBorder width90">
	<thead class="bold alignCenter">
		<tr>
			<td style="background-color:#E5E7E8;" colspan="2">Invité à modifier</td>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td class="listInviteBorder alignLeft paddingLeftRight02">Civilité</td>
			<td class="listInviteBorder alignCenter">
				<select name="civilite">
					<option value="<?php echo CIVILITE_MONSIEUR; ?>"<?php echo $selCiviliteM; ?>>M.</option>
					<option value="<?php echo CIVILITE_MADAME; ?>"<?php echo $selCiviliteMme; ?>>Mme</option>
					<option value="<?php echo CIVILITE_MADEMOISELLE; ?>"<?php echo $selCiviliteMlle; ?>>Mlle</option>
				</select>
			</td>
		</tr>
		<tr>
			<td class="listInviteBorder alignLeft paddingLeftRight02">Nom</td>
			<td class="listInviteBorder alignCenter"><input size="60" type="text" name="nom" value="<?php echo $invite['NOM']; ?>" /></td>
		</tr>
		<tr>
			<td class="listInviteBorder alignLeft paddingLeftRight02">Prénom</td>
			<td class="listInviteBorder alignCenter"><input size="60" type="text" name="prenom" value="<?php echo $invite['PRENOM']; ?>" /></td>
		</tr>
		<tr>
			<td class="listInviteBorder alignLeft paddingLeftRight02">Email</td>
			<td class="listInviteBorder alignCenter"><input size="60" type="text" name="email" value="<?php echo $invite['EMAIL']; ?>" /></td>
		</tr>
		<tr>
			<td class="listInviteBorder alignLeft paddingLeftRight02">Téléphone</td>
			<td class="listInviteBorder alignCenter" style="text-align:center"><input size="60" type="text" name="telephone" value="<?php echo $invite['TELEPHONE_FR']; ?>" /></td>
		</tr>
		<tr>
			<td class="listInviteBorder alignLeft paddingLeftRight02 width30">Confirmé</td>
			<td class="listInviteBorder alignCenter">
				Oui <input type="radio" name="confirme" value="1" <?php echo $confirmeRadioOui .' '?>/>&nbsp;&nbsp;
				Non <input type="radio" name="confirme" value="0" <?php echo $confirmeRadioNon .' '?>/>
			</td>
		</tr>
		<tr>
			<td class="listInviteBorder alignLeft paddingLeftRight02 width30">Statut</td>
			<td class="listInviteBorder alignCenter"><?php echo $codeStatut; ?></td>
		</tr>
	</tbody>
	</table><p><br /></p>
	<input type="submit" value="Modifier" onclick="javascript:document.getElementById('typeAction').value='UPDATE'" />
	<?php if ($statut['CODE'] !== STATUT_ANNULE) { //Afficher le bouton Annuler que si dans un statut différent ?>
	<input type="submit" value="Annuler l'invité" onclick="javascript:annulerOuSupprimerInvite('CANCEL')" />
	<?php
	} // Fin if ($codeStatut !== STATUT_ANNULE)
	else { //Afficher le bouton Confirmer que si dans le statut ANNULE
	?>
	<input type="submit" value="Confirmer l'invité" onclick="javascript:document.getElementById('typeAction').value='CONFIRM'" />
	<?php } //Fin else ($codeStatut == STATUT_ANNULE) ?>
	<!-- Bouton de suppression logique d'un invité -->
	<input type="submit" value="Supprimer l'invité" onclick="javascript:annulerOuSupprimerInvite('DELETE')" />
</form>

<?php } // try {
	catch (Exception $e) {
		redirectErrorPage($e, 'TAB_UPDATE_INVITES', URI_ERROR_PAGE);
	}
?>